// 流程控制
package main

import "fmt"

// import "fmt"

// func main() {
// 	a := 101
// 	if a > 100 {
// 		fmt.Println(a, "> 100")
// 	} else if a == 100 {
// 		fmt.Println(a, "= 100")
// 	} else {
// 		fmt.Println(a, " < 100")
// 	}

// }

// import (
// 	"fmt"
// 	"runtime"
// )

// func main() {
// 	if num := runtime.NumCPU(); num >= 1 {
// 		fmt.Println("程序使用的CPU核数为:", num)
// 	}
// }

// // 循环控制
// import "fmt"

// func main() {
// 	for i := 1; i <= 5; i++ {
// 		fmt.Println(i)
// 	}
// }

// break跳出循环 go 只有for循环不支持while

// func main() {
// 	i := 1
// out_lab:
// 	for {
// 		for {
// 			if i > 5 {
// 				fmt.Println("跳出内层for循环")
// 				break out_lab
// 			}
// 			fmt.Println(i)
// 			i++
// 		}
// 		fmt.Println("跳出外层for循环")
// 		break
// 	}
// }

// continue 继续循环
// func main() {
// outerLoops:
// 	for i := 0; i < 2; i++ {
// 		for j := 0; j < 3; j++ {
// 			if j == 1 {
// 				fmt.Println(i, j)
// 				continue outerLoops
// 			}
// 		}
// 	}
// }

// switch 分支
// func main() {
// 	switch {
// 	// false 肯定不会执行
// 	case false:
// 		fmt.Println("case 1为false")
// 		fallthrough // 无条件执行
// 	// true 肯定执行
// 	case true:
// 		fmt.Println("case 2为true")
// 		fallthrough
// 	case false:
// 		fmt.Println("case 3为false")
// 		fallthrough
// 	default:
// 		fmt.Println("默认 case")
// 	}

// }

// goto 跳转

// func main() {
// 	fmt.Println("hello")
// 	goto sign
// 	fmt.Println("无效代码")
// sign:
// 	fmt.Println("world")
// }

// 斐波拉契数列
// func fibnacci(n int) (res int) {
// 	a := 1
// 	b := 1
// 	for i := 2; i < n; i++ {
// 		c := b
// 		b = a + b
// 		a = c
// 	}
// 	return b
// }

// func fibnacci2(n int) (res int) {
// 	if n == 1 || n == 2 {
// 		return 1
// 	} else {
// 		return fibnacci2(n-2) + fibnacci2(n-1)
// 	}
// }

// func main() {
// 	n := 9
// 	fmt.Printf("斐波拉契数列第%d项值为%d", n, fibnacci(n))
// 	// fmt.Println("\n")
// 	fmt.Printf("斐波拉契数列type2第%d项值为%d", n, fibnacci2(n))
// }

// 循环嵌套
func pyramid(n int) {
	// n 总层数
	for i := 1; i <= n; i++ {
		for j := 1; j <= n-i; j++ {
			fmt.Print(" ")
		}
		for k := 1; k <= 2*i-1; k++ {
			fmt.Print("*")
		}
		fmt.Print()

	}
}

func main() {
	n := 9
	pyramid(n)
}
